﻿using Management.API.DTOs.Management;
using MediatR;
using Management.Errorcode;

namespace Management.API.Application.Controller.Management.Product
{ 
    public class GetProductCommand : IRequest<ApiResult<IList<GetProductDTO>>>
    {
        /// <summary>
        /// 主键
        /// </summary>
        public int ProductId { get; set; }

        /// <summary>
        /// 产品编号
        /// </summary>
        public string ProductNumber { get; set; }

        /// <summary>
        /// 编号状态
        /// </summary>
        public bool ProductNumberingState { get; set; }

        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string SpecificationModel { get; set; }

        /// <summary>
        /// 产品状态
        /// </summary>
        public bool ProductStatus { get; set; }

        /// <summary>
        /// 库存上限
        /// </summary>
        public string ProductInventoryCeiling { get; set; }

        /// <summary>
        /// 库存下限
        /// </summary>
        public string ProductStockFloor { get; set; }

        /// <summary>
        /// 采购价格
        /// </summary>
        public string ProductPurchasePrice { get; set; }

        /// <summary>
        /// 销售价格
        /// </summary>
        public string ProductSellingPrice { get; set; }

        /// <summary>
        /// 上传图片
        /// </summary>
        public string ProductUploadPictures { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string ProductRemark { get; set; }

        /// <summary>
        /// 有效期
        /// </summary>
        public string ProductValidity { get; set; }

        /// <summary>
        /// 报警天数
        /// </summary>
        public string ProductAlarmDays { get; set; }

        /// <summary>
        /// 日期状态
        /// </summary>
        public bool ProductDateStatus { get; set; }

        /// <summary>
        /// 日期类型
        /// </summary>
        public int DateTypeId { get; set; }

        /// <summary>
        /// 产品类型
        /// </summary>
        public int ProductTypeId { get; set; }

        /// <summary>
        /// 产品属性
        /// </summary>
        public int ProductAttributeId { get; set; }

        /// <summary>
        /// 产品分类
        /// </summary>
        public int ProductClassificationId { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public int UnitId { get; set; }

    }

    /// <summary>
    /// 添加  参数
    /// </summary>
    public class AddProductCommand : IRequest<ApiResult>
    {
        /// <summary>
        /// 主键
        /// </summary>
        public int ProductId { get; set; }

        /// <summary>
        /// 产品编号
        /// </summary>
        public string ProductNumber { get; set; }

        /// <summary>
        /// 编号状态
        /// </summary>
        public bool ProductNumberingState { get; set; }

        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string SpecificationModel { get; set; }

        /// <summary>
        /// 产品状态
        /// </summary>
        public bool ProductStatus { get; set; }

        /// <summary>
        /// 库存上限
        /// </summary>
        public string ProductInventoryCeiling { get; set; }

        /// <summary>
        /// 库存下限
        /// </summary>
        public string ProductStockFloor { get; set; }

        /// <summary>
        /// 采购价格
        /// </summary>
        public string ProductPurchasePrice { get; set; }

        /// <summary>
        /// 销售价格
        /// </summary>
        public string ProductSellingPrice { get; set; }

        /// <summary>
        /// 上传图片
        /// </summary>
        public string ProductUploadPictures { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string ProductRemark { get; set; }

        /// <summary>
        /// 有效期
        /// </summary>
        public string ProductValidity { get; set; }

        /// <summary>
        /// 报警天数
        /// </summary>
        public string ProductAlarmDays { get; set; }

        /// <summary>
        /// 日期状态
        /// </summary>
        public bool ProductDateStatus { get; set; }

        /// <summary>
        /// 日期类型
        /// </summary>
        public int DateTypeId { get; set; }

        /// <summary>
        /// 产品类型
        /// </summary>
        public int ProductTypeId { get; set; }

        /// <summary>
        /// 产品属性
        /// </summary>
        public int ProductAttributeId { get; set; }

        /// <summary>
        /// 产品分类
        /// </summary>
        public int ProductClassificationId { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public int UnitId { get; set; }
    }

    /// <summary>
    /// ID查询 
    /// </summary>
    public class GetIDProductCommand : IRequest<ApiResult<GetProductCommand>>
    {
        public int MaterialId { get; set; }
    }

    //批量添加
    public class AddUsersProductCommand : IRequest<ApiResult>
    {
        public List<GetProductDTO> ProductId { get; set; }
    }

    //删除
    public class DeleteProductCommand : IRequest<ApiResult>
    {
        public int ProductId { get; set; }
    }

    //修改
    public class UpdateProductCommand : IRequest<ApiResult>
    {
        /// <summary>
        /// 主键
        /// </summary>
        public int ProductId { get; set; }

        /// <summary>
        /// 产品编号
        /// </summary>
        public string ProductNumber { get; set; }

        /// <summary>
        /// 编号状态
        /// </summary>
        public bool ProductNumberingState { get; set; }

        /// <summary>
        /// 产品名称
        /// </summary>
        public string ProductName { get; set; }

        /// <summary>
        /// 规格型号
        /// </summary>
        public string SpecificationModel { get; set; }

        /// <summary>
        /// 产品状态
        /// </summary>
        public bool ProductStatus { get; set; }

        /// <summary>
        /// 库存上限
        /// </summary>
        public string ProductInventoryCeiling { get; set; }

        /// <summary>
        /// 库存下限
        /// </summary>
        public string ProductStockFloor { get; set; }

        /// <summary>
        /// 采购价格
        /// </summary>
        public string ProductPurchasePrice { get; set; }

        /// <summary>
        /// 销售价格
        /// </summary>
        public string ProductSellingPrice { get; set; }

        /// <summary>
        /// 上传图片
        /// </summary>
        public string ProductUploadPictures { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        public string ProductRemark { get; set; }

        /// <summary>
        /// 有效期
        /// </summary>
        public string ProductValidity { get; set; }

        /// <summary>
        /// 报警天数
        /// </summary>
        public string ProductAlarmDays { get; set; }

        /// <summary>
        /// 日期状态
        /// </summary>
        public bool ProductDateStatus { get; set; }

        /// <summary>
        /// 日期类型
        /// </summary>
        public int DateTypeId { get; set; }

        /// <summary>
        /// 产品类型
        /// </summary>
        public int ProductTypeId { get; set; }

        /// <summary>
        /// 产品属性
        /// </summary>
        public int ProductAttributeId { get; set; }

        /// <summary>
        /// 产品分类
        /// </summary>
        public int ProductClassificationId { get; set; }

        /// <summary>
        /// 单位
        /// </summary>
        public int UnitId { get; set; }
    }


}
